package easy;

/**
 * 给你一个字符串 s，表示一个 12 小时制的时间格式，其中一些数字（可能没有）被 "?" 替换。
 * 12 小时制时间格式为 "HH:MM" ，其中 HH 的取值范围为 00 至 11，MM 的取值范围为 00 至 59。最早的时间为 00:00，最晚的时间为 11:59。
 * 你需要将 s 中的 所有 "?" 字符替换为数字，使得结果字符串代表的时间是一个 有效 的 12 小时制时间，并且是可能的 最晚 时间。
 * 返回结果字符串。
 * 示例 1：
 * 输入： s = "1?:?4"
 * 输出： "11:54"
 * 解释： 通过替换 "?" 字符，可以得到的最晚12小时制时间是 "11:54"。
 * 示例 2：
 * 输入： s = "0?:5?"
 * 输出： "09:59"
 * 解释： 通过替换 "?" 字符，可以得到的最晚12小时制时间是 "09:59"。
 */
public class test1 {
    public static void main(String[] args) {
        test1 test1 = new test1();
        String s = "1?:?4";
        System.out.println(test1.findLatestTime(s));
    }

    public String findLatestTime(String s) {
        char[] charArray = s.toCharArray();
//        for (int i = 0; i < charArray.length; i++) {//for循环也可以不用
        if (charArray[0] == '?') {
            charArray[0] = charArray[1] == '?' || charArray[1] <= '1' ? '1' : '0';
            /**
             * 如果0号位为？的时候，1大于1，例如12，13则不符合题目要求；
             **/

        }
        if (charArray[1] == '?') {
            charArray[1] = charArray[0] == '1' ? '1' : '9';
        }
        if (charArray[3] == '?') {
            charArray[3] = '5';
        }
        if (charArray[4] == '?') {
            charArray[4] = '9';
        }
//        }

//        return Arrays.toString(charArray).replace(",","").replace("[","").replace("]","");//注意下面写法
        return new String(charArray);
    }
}
